﻿using Appliaction.Dto.FG;
using Domain.Entitys.FG;
using Domain.Entitys.Inv;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Appliaction.IAppServices.FG
{
    public interface IFG_Picking_OutboundService
    {
        /// <summary>
        /// 查询总条数
        /// </summary>
        /// <param name="Picking_outbound_code"></param>
        /// <param name="Warehouse_code"></param>
        /// <returns></returns>
        int GetFG_Picking_OutboundCount(string Picking_outbound_code, string Warehouse_code);
        /// <summary>
        /// 分页条件查询领料出库数据
        /// </summary>
        /// <param name="Picking_outbound_code"></param>
        /// <param name="Warehouse_code"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        List<FG_Picking_Outbound_Info> GetFG_Picking_OutboundFYwhere(string Picking_outbound_code, string Warehouse_code, int currentPage, int pageSize);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="fG_Picking_Outbound"></param>
        /// <returns></returns>
        Task<int> PutFG_Picking_OutboundDelete(FG_Picking_Outbound_DeleteDto fG_Picking_Outbound_DeleteDto);

        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="fG_Picking_Outbound"></param>
        /// <param name="fg_Picking_Outbound_Details"></param>
        /// <returns></returns>
        Task<int> PutFG_Picking_OutboundAdd(Fg_Picking_Outbound_OrderAddDto<FG_Picking_Outbound_AddDto> fg_Picking_Outbound_OrderAdd);

        /// <summary>
        /// 查询库存信息
        /// </summary>
        /// <param name="Warehouse_Code"></param>
        /// <param name="Zone_Code"></param>
        /// <param name="productName"></param>
        /// <param name="dict_code"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        Task<List<inv_stock>> GetInv_StockAsyncs(string Warehouse_Code, string Zone_Code, string pro_code, int pro_attribute_id, int currentPage, int pageSize);
        /// <summary>
        /// 查询库存信息总条数
        /// </summary>
        /// <param name="Warehouse_Code"></param>
        /// <param name="Zone_Code"></param>
        /// <param name="pro_code"></param>
        /// <param name="pro_attribute_id"></param>
        /// <returns></returns>
        Task<int> Inv_StockCountAsyncs(string Warehouse_Code, string Zone_Code, string pro_code, int pro_attribute_id);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="fG_Picking_Outbound"></param>
        /// <param name="fg_Picking_Outbound_Details"></param>
        /// <returns></returns>
        Task<int> PutFg_Picking_OutboundUpdate(Fg_Picking_Outbound_OrderUpdateDto<FG_Picking_Outbound_UpdateDto> fg_Picking_Outbound_OrderUpdateDto);
        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="fG_Picking_Outbound"></param>
        /// <param name="fg_Picking_Outbound_Details"></param>
        /// <returns></returns>
        Task<int> PutFg_Picking_OutboundAudit(Fg_Picking_Outbound_OrderAuditDto<FG_Picking_Outbound_AuditDto> fg_Picking_Outbound_OrderAuditDto);
    }
}
